package net.zoneland.knowledge.model;

import java.io.Serializable;
import java.util.Date;

import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

import net.zoneland.knowledge.utils.DateHelper;

/**
 * 党建服务直通车.
 * @author chw.
 * @version V1.0
 * 2022-11-03
 */
public class DirectTrainForParty implements Serializable {

    /**
     * 主键ID.
     */
    private String id;

    /**
     * 期数.
     */
    private int numberOfPeriods;

    /**
     * 内容标题.
     */
    private String title;

    /**
     * 内容日期.
     */
    @JsonFormat(pattern = DateHelper.CHINA_DATE_FORMAT_STR ,timezone = "GMT+8")
    @DateTimeFormat(pattern = DateHelper.CHINA_DATE_FORMAT_STR)
    private Date dataTime;

    /**
     * 内容链接-PC.
     */
    private String linkPc;

    /**
     * 内容链接-MOA.
     */
    private String linkMoa;

    /**
     * 是否有效.0:有效 1：无效.
     */
    private int valid;

    /**
     * 类型.
     */
    private String dataType;

    /**
     * 创建人ID.
     */
    private String creatorUserId;

    /**
     * 创建人名称.
     */
    private String creatorUserName;

    /**
     * 创建时间.
     */
    private Date crateTime;

    /**
     * 最后修改时间.
     */
    private Date lastModified;

    /**
     * 视频内容介绍
     */
    private String liveContent;

    /**
     * 视频链接地址
     */
    private String videoLinkAddress;

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getId() {
        return id;
    }

    /**
     * 设置 属性值.
     * @param id 属性值
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getTitle() {
        return title;
    }

    /**
     * 设置 属性值.
     * @param title 属性值
     */
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public Date getDataTime() {
        return dataTime;
    }

    /**
     * 设置 属性值.
     * @param dataTime 属性值
     */
    public void setDataTime(Date dataTime) {
        this.dataTime = dataTime;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getLinkPc() {
        return linkPc;
    }

    /**
     * 设置 属性值.
     * @param linkPc 属性值
     */
    public void setLinkPc(String linkPc) {
        this.linkPc = linkPc;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getLinkMoa() {
        return linkMoa;
    }

    /**
     * 设置 属性值.
     * @param linkMoa 属性值
     */
    public void setLinkMoa(String linkMoa) {
        this.linkMoa = linkMoa;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public Date getCrateTime() {
        return crateTime;
    }

    /**
     * 设置 属性值.
     * @param crateTime 属性值
     */
    public void setCrateTime(Date crateTime) {
        this.crateTime = crateTime;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public Date getLastModified() {
        return lastModified;
    }

    /**
     * 设置 属性值.
     * @param lastModified 属性值
     */
    public void setLastModified(Date lastModified) {
        this.lastModified = lastModified;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public int getValid() {
        return valid;
    }

    /**
     * 设置 属性值.
     * @param valid 属性值
     */
    public void setValid(int valid) {
        this.valid = valid;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public int getNumberOfPeriods() {
        return numberOfPeriods;
    }

    /**
     * 设置 属性值.
     * @param numberOfPeriods 属性值
     */
    public void setNumberOfPeriods(int numberOfPeriods) {
        this.numberOfPeriods = numberOfPeriods;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getDataType() {
        return dataType;
    }

    /**
     * 设置 属性值.
     * @param dataType 属性值
     */
    public void setDataType(String dataType) {
        this.dataType = dataType;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getCreatorUserId() {
        return creatorUserId;
    }

    /**
     * 设置 属性值.
     * @param creatorUserId 属性值
     */
    public void setCreatorUserId(String creatorUserId) {
        this.creatorUserId = creatorUserId;
    }

    /**
     * 获取 属性值.
     * @return 属性值
     */
    public String getCreatorUserName() {
        return creatorUserName;
    }

    /**
     * 设置 属性值.
     * @param creatorUserName 属性值
     */
    public void setCreatorUserName(String creatorUserName) {
        this.creatorUserName = creatorUserName;
    }

    @Override
    public String toString() {
        return ReflectionToStringBuilder.toString(this);
    }

    public String getLiveContent() {
        return liveContent;
    }

    public void setLiveContent(String liveContent) {
        this.liveContent = liveContent;
    }

    public String getVideoLinkAddress() {
        return videoLinkAddress;
    }

    public void setVideoLinkAddress(String videoLinkAddress) {
        this.videoLinkAddress = videoLinkAddress;
    }
}
